Android apex 学习总结 – Kevin's blog 您所在的位置:网站首页 Android Apex文件如何提取Java代码 Android apex 学习总结 – Kevin's blog

Android apex 学习总结 – Kevin's blog

2024-05-02 11:56| 来源: 网络整理| 查看: 265

最近对 apex 文件进行了大致的了解,其中主要涉及到安全方面的学习,在这里跟大家分享一下:

apex 是什么? Android Pony EXpress (APEX) 是 Android 10 中引入的一种容器格式,用于在较低级别系统模块的安装流程中使用。此格式可帮助更新不适用于标准 Android 应用模型的系统组件。一些示例组件包括原生服务和原生库、硬件抽象层 (HAL)、运行时 (ART) 以及类库。apex 文件的构成 apex_manifest.json, AndroidManifest.xml, apex_payload.img,apex_pubkey 其中我们需要关注的是 apex_payload.img和 apex_pubkey。 apex_payload.img 是由 dm-verity 支持的 ext4 文件系统映像。各种原生常规文件包含在 apex_payload.img 文件中。 apex_pubkey 是用于为文件系统映像验签的公钥。apex 如何生成? apex 在 Android 源码编译,需要进行相应的配置,然后编写相关的模块编译文件 Android.bp,最终编译生成 unflatten 的 apex 文件。apex 文件如何安装? 通过 packageInstaller 或者 adb 等安装工具安装。apex 如何验签? apex 有两层的签名,第一层,首先 apex 其实也是一种 apk 文件,所以系统会对 apex 整体进行一次签名,签名和验签过程与 apk 一样。 第二层,apex 中 apex_payload.img的 vbmeta 描述符中包含哈希树,通过 dm-verity 来验签。/system 分区下的 apex 文件通过 dm-verity 保证安全;/data 中的 apex 文件在启动时, 由 apex 服务来进行验签,验签原理与 dm-verity 一致。我们的系统支持 apex 更新吗? 目前 msm8937 的 sdk 中并没有启用 apex 更新功能。启动这个功能需要相关的配置,并重新编译系统。 而添加支持的方式也很简单,在 {device.mk} 中添加一下语句,同时配置各个服务的 rc 文件,使服务支持 apex 更新。 $(call inherit-product, $(SRC_TARGET_DIR)/product/updatable_apex.mk)供应商系统有必要启动 apex 更新支持吗? 个人认为没必要。apex 目前支持的更新模块主要 Google 核心运行时库,而这些更新更多是由 Google 来做支持。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有